\begin{verbatim}
AZ := &*[ CodeToString(64+i) : i in [1..26] ];
PT := StripEncoding(Read("blackcat.txt")); 
Diff1 := "AHXCOYFBAMKUE";
Diff2 := "XHXRGEUHPRAHN";
eps := 0.15;
for k in [1..12] do
    D1 := Diff1[[k,k+1]]; D2 := Diff2[[k,k+1]];
    FD := RelativeDifferentialProbabilities(D1,D2,PT);
    r1 := Index(AZ,D1[1]); s1 := Index(AZ,D1[2]);
    r2 := Index(AZ,D2[1]); s2 := Index(AZ,D2[2]);
    print "k:", k;
    for i1, j1 in [1..26] do
        if FD[i1,j1] ge eps then
            i2 := (i1-r1) mod 26 + 1; j2 := (j1-s1) mod 26 + 1;
            i3 := (i1-r2) mod 26 + 1; j3 := (j1-s2) mod 26 + 1;
            printf "[%o,%o,%o] (%o)\n",
                AZ[[i1,j1]], AZ[[i2,j2]], AZ[[i3,j3]], FD[i1,j1];
        end if;
    end for;
end for;
\end{verbatim}
